#!/bin/bash
#
# Este script obtiene la lista de miembros de un grupo
# o si se le pasa -exc como segundo argumento, mostrara los que no pertenecen
#
 
 # Comprobar argumentos...
 if [ "" = "$1" ]
 then
    echo "ERROR: Debes pasar el grupo [OPCIONAL: -exc (los que no pertenece)]"
    exit 2
 fi
 
 # Obtener la ruta absoluta del script
 LSOF=$(lsof 2>/dev/null -p $$ | grep -E "/"$(basename $0)"$")
 MY_PATH=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
 MY_ROOT=$(dirname $MY_PATH)

 # Cargar la configuracion del servidor Samba
 . $MY_ROOT/Config.app.conf

 # Para los temporales...
 tmpFile=/tmp/smbGrp_$$_$RANDOM

 # Obtener la lista de usuarios 
 net rpc -S $SMB_Server -U $SMB_Credentials user  2>/dev/null | sort >$tmpFile.users 

 # Obtener la lista de miembros para el grupo
 net rpc -S $SMB_Server -U $SMB_Credentials group members "$1"  2>/dev/null |  awk -F '\' '{printf("%s\n",$2)}' | sort >$tmpFile.members

 # Obtener las diferencias...
 diff $tmpFile.users  $tmpFile.members > $tmpFile.diffs

 if [ "-exc" = "$2" ] 
 then 
    # Hay que mostrar los excluidos...
    grep '^< '  $tmpFile.diffs | cut -c3-
 else
    cat $tmpFile.members
 fi

 rm $tmpFile.* -f 2>/dev/null
 
